package com.zhongge.servlet;

import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @ClassName MyServlet
 * @Description TODO
 * @Author zhongge
 * @Version 1.0
 */
@WebServlet("/login")
public class MyServlet extends HttpServlet {
    //模拟在数据库中取出来数值
    private final String USER_NAME = "李华";
    private final String PWD = "123";

    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //设置字符集
        req.setCharacterEncoding("UTF-8");//请求的参数符合服务器使用的字符集
        //获取请求参数
        String userName = req.getParameter("username");//Parameter：怕热阿么特 翻译为参数
        String password = req.getParameter("password");

        //进行判断
        if (USER_NAME.equals(userName) && PWD.equals(password)) {
            // 登录成功，设置属性并转发到欢迎页面
            req.setAttribute("username", userName);
            /*
             * 跳转按理来说是响应res来进行的，但是的话 如果你使用请求req 那么你就先用getRequestDispatcher("目标路径")
             * 然后使用forward(req, res) 直接转过去：从req转res 你可以理解为 跳转是res的主场，如果你使用req
             * 那么就先写目标路径 再将req射到res即可
             * */
            req.getRequestDispatcher("/welcome.jsp").forward(req, resp);//转发不需要写上下文  都是以/开头
        } else {
            // 登录失败，重定向到错误页面
            resp.sendRedirect("/web01_war_exploded/error.jsp");//重定向需要写上下文  都是以/开头
        }
    }
}
